/*
 * Copyright (C) 2009 2DAI
 *
 * Este programa es Software Libre; usted puede redistribuirlo
 * y/o modificarlo bajo los términos de la "GNU General Public
 * License" como lo publica la "FSF Free Software Foundation",
 * o (a su elección) de cualquier versión posterior.
 *
 * Este programa es distribuido con la esperanza de que le será
 * útil, pero SIN NINGUNA GARANTIA; incluso sin la garantía
 * implícita por el MERCADEO o EJERCICIO DE ALGUN PROPOSITO en
 * particular. Vea la "GNU General Public License" para más
 * detalles.
 *
 * Usted debe haber recibido una copia de la "GNU General Public
 * License" junto con este programa, si no, escriba a la "FSF
 * Free Software Foundation, Inc.", 59 Temple Place - Suite 330,
 * Boston, MA  02111-1307, USA.
 */
package util;

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;

/**
 *
 * Author: Jorge Garrido Oval
 * Esta clase crea un robot que maneja el teclado y el raton para hacer
 * demostraciones del programa.
 */
public class TestRobot extends Thread {

    private Robot robot;

    public TestRobot() {
        try {
            robot = new Robot();
        } catch (AWTException ex) {
            Errors.creaError("No ha sido posible iniciar el robot", ex.getStackTrace());
        }
    }

    private void mueveRaton() {
        for (int i = 0; i < 20; i++) {
            robot.mouseMove((int) (Math.random()*1000), (int) (Math.random()*1000));
        }
        robot.mousePress(InputEvent.BUTTON2_MASK);
        robot.mouseRelease(InputEvent.BUTTON2_MASK);
    }

    private void abreCosas() {
        //Abre locales... xD
        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_L);
        robot.keyRelease(KeyEvent.VK_CONTROL);
        robot.keyRelease(KeyEvent.VK_L);
        //Abre 5 acercaDe
        for(int i=0;i<10;i++){
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_Q);
            robot.keyRelease(KeyEvent.VK_CONTROL);
            robot.keyRelease(KeyEvent.VK_Q);
        }
        //Abre acta jojo...
        robot.keyPress(KeyEvent.VK_ALT);
        robot.keyPress(KeyEvent.VK_A);
        robot.keyRelease(KeyEvent.VK_ALT);
        robot.keyRelease(KeyEvent.VK_A);
        //Abre 5 equipos
        for(int i=0;i<10;i++){
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_T);
            robot.keyRelease(KeyEvent.VK_CONTROL);
            robot.keyRelease(KeyEvent.VK_T);
        }
    }

    @Override
    public void run() {
        robot.setAutoDelay(200);
        for (int i = 0; i < 3; i++) {
            mueveRaton();
            abreCosas();
            mueveRaton();
        }
    }
}
